import cv2

vc = cv2.VideoCapture('./video/test.mp4')
# 检测是否打开正确
# if vc.isOpened():
# vc.read() --> 读取图像当重点额第一帧, 再次调用会读取第二帧... 可以写个循环, 不断执行vc.read()获取每一帧
# read()返回的结果为两个值, 第一个值为布尔类型, 当前帧可以读到返回True, 读不到是False
# 第二个值是当前帧的图像
# open, frame = vc.read()
# else:
#     open = False

# 判断是否打开正确
if vc.isOpened():
    # 循环按帧读取图片
    while True:
        # 读取图片
        ret, frame = vc.read()
        # 图片为空, 跳过
        if frame is None:
            break
        # 读取成功
        if ret:
            # 将图片转成灰色
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            # 逐帧展示图片
            cv2.imshow('result', gray)
            # cv2.waitKey(50) 函数的返回值是按键的ASCII码值 ESC的码值为27
            # 判断用户按键是不是27 也就是ESC
            if cv2.waitKey(66) & 0xFF == 27:
                break
# 释放资源
vc.release()
# 关闭当前所有窗口
cv2.destroyAllWindows()
